package com.zhdl.hardware.motor.huichuan.repository;

import com.zhdl.modules.tools.CommonCallback;

public interface HcPortCmdHandleDao {

    /**
     * 汇川电机-电机停止运动
     *
     * @param slaveStationId 从站ID
     */
    void hcMotorStop(String port, String slaveStationId);

    /**
     * 汇川电机-电机伺服使能
     *
     * @param slaveStationId 从站ID
     */
    void hcMotorReady(String port, String slaveStationId);

    /**
     * 汇川电机-电机运动使能
     * 伺服使能+多端位置运动使能
     *
     * @param slaveStationId 从站ID
     */
    void hcMotorRun(String port, String slaveStationId);

    /**
     * 汇川电机-设置单个参数的值
     * 功能码06，写入单个寄存器
     *
     * @param slaveStationId 从站Id
     * @param address        寄存器地址
     * @param value          写入的值
     */
    void hcSetSingleValue(String port, String slaveStationId, String address, int value);

    /**
     * 汇川电机-读取当前绝对位置
     *
     * @param slaveStationId 从站Id
     * @param address        寄存器地址
     * @param callback       回调函数
     */
    void hcReadLocation(String port, String slaveStationId, String address, CommonCallback<byte[]> callback);

    /**
     * 汇川电机-电机找原点
     *
     * @param slaveStationId 从站Id
     */
    void hcMotorBackOrigin(String port, String slaveStationId);

    /**
     * 除渣电机-设置伺服使能
     */
    void motorWriteSlagReady(String port, String slaveStationId);

    /**
     * 除渣电机-设置电机移动 伺服使能+电机开始多端运动
     * 仅供测试
     */
    void motorWriteSlagRun(String port, String slaveStationId);

    /**
     * 除渣电机-设置电机停止运动
     */
    void motorWriteSlagStop(String port, String slaveStationId);

    /**
     * 除渣电机找原点
     */
    void motorWriteSlagZero(String port, String slaveStationId);

    /**
     * 读取除渣电机-当前绝对位置
     */

    void motorReadSlagLocation(String port, String slaveStationId, String address, CommonCallback<byte[]> callback);

    /**
     * 除渣电机-电机移动距离
     *
     * @param moveDist 移动距离
     */
    void setSlagMoveDist(String port, String slaveStationId, String address, int moveDist);

    /**
     * 功能码06
     */
    void writeSlag06(String port, String slaveStationId, String address, int value);

    /**
     * 电机当前绝对位置(H0b.07)均与机械原点偏移量(H05.36)
     */
    void readSlagOriginDistance(String port, String slaveStationId);

}
